//package com.geekerp.authorization_server.sms;
//import org.springframework.lang.Nullable;
//import org.springframework.security.authentication.AbstractAuthenticationToken;
//import org.springframework.security.core.Authentication;
//import org.springframework.security.oauth2.core.AuthorizationGrantType;
//
//import java.util.*;
//
//public class SmsCodeAuthenticationToken extends AbstractAuthenticationToken {
//    private final Set<String> scopes;
//    private final Authentication clientPrincipal;
//    private final Map<String, Object> additionalParameters;
//    private final AuthorizationGrantType authorizationGrantType;
//
//    public SmsCodeAuthenticationToken(AuthorizationGrantType authorizationGrantType,
//                                              Authentication clientPrincipal,
//                                              @Nullable Set<String> scopes,
//                                              @Nullable Map<String, Object> additionalParameters) {
//        super(Collections.emptyList());
//        this.scopes = Collections.unmodifiableSet(
//                scopes != null ? new HashSet<>(scopes) : Collections.emptySet());
//        this.clientPrincipal = clientPrincipal;
//        this.additionalParameters = Collections.unmodifiableMap(
//                additionalParameters != null ? new HashMap<>(additionalParameters) : Collections.emptyMap());
//        this.authorizationGrantType = authorizationGrantType;
//    }
//
//    @Override
//    public Object getCredentials() {
//        return null;
//    }
//
//    @Override
//    public Object getPrincipal() {
//        return clientPrincipal;
//    }
//
//    public Set<String> getScopes() {
//        return this.scopes;
//    }
//
//    public AuthorizationGrantType getAuthorizationGrantType() {
//        return this.authorizationGrantType;
//    }
//
//    public Map<String, Object> getAdditionalParameters() {
//        return this.additionalParameters;
//    }
//}
